package com.zbkj.crmeb.front.request;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @author stivepeim
 * @title: OrderPayRequest
 * @projectName crmeb
 * @description: 支付订单参数
 * @date 2020/7/1617:14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="LianlianPayRequest 对象", description="订单支付")
public class LianlianPayRequest implements Serializable {

    private static final long serialVersionUID = 307827596559364405L;


    /** 必传:时间戳，格式yyyyMMddHHmmss HH以24小时为准，如20170309143712。timestamp 与连连服务器的时间(北京时间)之间的误差不能超过30分钟。*/
    private String timestamp;

    /** 必传:商户号，ACCP系统分配给平台商户的唯一编号 */
    private String oid_partner;

    /** 必传:商户系统唯一交易流水号。由商户自定义。 */
    private String txn_seqno;

    /** 必传:订单总金额，单位为元，精确到小数点后两位。*/
    private BigDecimal total_amount;

    /** 必传:风险控制参数。连连风控部门要求商户统一传入风险控制参数字段，字段值为json 字符串的形式。传入示例及要求见风险控制说明。 */
    private String risk_item;

    /** 必传：终端用户IP。支持IPV4和IPV6两种格式的IP地址。*/
    private String client_ip;

    /**应用ID。开发者在微信或支付宝开放平台申请的APPID。非网银类，除扫码支付，都必传。微信平台申请APPID*/
    private String appid;

    /** 渠道用户标识。微信公众号、微信小程序、微信B2B支付和支付宝小程序时必传。此参数为微信用户在商户对应APPID下的唯一标识或支付宝买家的支付宝唯一用户号（2088开头的16位纯数字）。
     * 获取方式可参考官方文档说明。
     */
    private String openid;

    /**通常通过微信支付的API接口获取。微信B2B支付必传*/
    private String session_key;

    /**
     * 	可通过小程序MP查看：门店助手->支付管理 ->商户号管理查看详情->基本配置中的沙箱AppKey和现网AppKey。
     * 注意:记得根据env值选择不同AppKey,env=0对应现网AppKey，env=1对应沙箱AppKey。
     * 微信B2B支付必传
     */
    private String app_key;

    /**银行编码。付款方式为网银类时可指定。*/
    private String bankcode;

    /**设备标识。自定义参数，可以为终端设备号。*/
    private String device_info;

    /**版本标识。自定义参数，可以为支付宝的版本号。*/
    private String device_version;

    /**
     * 限制卡类型。限制某种卡类型支付权限，支付宝和微信支付都适用，若限制多种类型以“,”分隔（暂时只支持限制信用卡支付）。credit：限制适用信用卡支付。
     */
    private String limit_card_type;

    /**业务扩展字段。渠道扩展字段JSON串，若渠道为支付宝，则支持的键值对如下：*/
    private String extend_params;

    /**
     * 定向支付标识。
     * 标识该笔交易是否是约定收款方的定向支付，默认：N。
     * Y：定向支付
     * N：普通支付。
     * 组合余额支付场景时适用。
     */
    private String directionalpay_flag;

    /** 商户订单信息 */
    private PayerInfoRequest payerInfo;

    /** 门店信息详情 */
    private List<PayMethodsRequest> payMethods;

}
